package study.core.rdd.operator

import org.apache.spark.{SparkConf, SparkContext}

/**
 * 转换算子之map操作
 * 将处理的数据逐条进行映射转换，这里的转换可以是类型的转换，也可以是值的转换。
 *
 * @author zh
 * @date 2021/5/15 10:47
 */
object TestMap {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("rddMap")
    val context = new SparkContext(sparkConf)

    // 准备集合
    val list = List(1, 2, 3, 4)
    // 创建RDD
    val rdd = context.makeRDD(list)

    def mapFunction(num: Int) = {
      num * 2
    }

    // 采用函数传入
    //    val result = spark.core.rdd.map(mapFunction)
    // 匿名函数
    //    val result = spark.core.rdd.map((num: Int) => {
    //      num * 2
    //    })

    // 化简
    val result = rdd.map(_ * 2)

    //2
    //4
    //6
    //8
    result.collect().foreach(println)

    context.stop()
  }

}
